"""
1，写一个lambda表达式，实现两个数的相加
"""
from functools import reduce

cal_sum_ = lambda x, y: x + y
# print(cal_sum_(2, 2))

"""
2，编写函数，第一个参数指定今天是星期几（1 ~ 7），第二个参数指定天数n，返回n天后是星期几。
"""


def what_day(t, n):
    if (t + n) % 7 == 0:
        return 7
    else:
        return (t + n) % 7


# print(what_day(2, 10))

"""
3，求平方和，有列表[1,……9]，把每一个元素都取一下平方，然后累加求和，使用普通函数和使用高阶函数两种方式解决问题
"""
my_list = list(range(1, 10))


# 方法一
print(reduce(lambda x, y: x + y, map(lambda x: x ** 2, my_list)))


# 方法二
def square_sum(li):
    temp_sum_ = 0
    for i in li:
        temp_sum_ += (i ** 2)
    return temp_sum_


result = square_sum(my_list)
print(result)

# 没想到的方法：
print(sum([i ** 2 for i in my_list]))

print(f'使用sum函数测试{sum(my_list)}')
# 没想到的方法：
print(sum(list(map(lambda x: x ** 2, my_list))))
